In general, various computer memory technologies have been developed in semiconductor industry. A fundamental building block of a computer memory may be referred to as memory cell. The memory cell may be an electronic circuit that is configured to store at least one information (e.g., bitwise). As an example, the memory cell may have at least two memory states representing, for example, a logic “1” and a logic “0”. In general, the information may be maintained (stored) in a memory cell until the memory state of the memory cell is changed, e.g., in a controlled manner. Changing or setting a memory state may be referred to as programming the memory cell. The information stored in the memory cell may be obtained by determining in which of the memory states the memory cell is. At present, various types of memory cells may be used to store data. Typically, a large number of memory cells may be implemented in a memory cell array, wherein each of the memory cells or predefined groups of memory cells may be individually addressable. In this case, the information may be read out by addressing the memory cells accordingly.
In general, a content-addressable memory (CAM) may be designed in such a way that lookup data may be compared against stored data, and, in the case that stored data match with the lookup data, a corresponding address of these stored data is provided as a result. The lookup data may be referred to as lookup word or search word, e.g. a word based on a number of n-bits. The stored data may be referred to as stored word, e.g. a word based on a number of n-bits. The content-addressable memory may be also referred to as associative memory, associative storage, or associative array. The content-addressable memory may be used in searching applications, e.g. in computer networking devices as, for example, network routers, etc. In general, a content-addressable memory may be based on binary CAM cells or ternary CAM cells. In a content-addressable memory based on binary CAM cells, the words are stored using only two distinct logic states, e.g. either a logic “1” or a logic “0”. In this case, the searched word has to be identical to the stored word to achieve a match. Ternary CAM cells have an additional logic state (X) that allows introducing a certain fuzziness in the stored words. This additional logic state is referred to as “do not care” state. During a search, this additional logic state may match to both a logic “1” and a logic “0”. This may add flexibility to a search, since, for example, a stored two bit word (0, X) would match to both the search word (0, 0) and the search word (0, 1), as example.